package main

import (
	"log"
	"net/http"
	"reflect"
	"strings"
)

func main() {
	//var wg sync.WaitGroup
	var ht http.Client
	typ := reflect.TypeOf(&ht)

	for i := 0; i < typ.NumMethod(); i++ {
		method := typ.Method(i)
		argv := make([]string, 0, method.Type.NumIn())
		returns := make([]string, 0, method.Type.NumOut())

		for j := 1; j < method.Type.NumIn(); j++ {
			argv = append(argv, method.Type.In(i).Name())
		}

		for j :=0; j < method.Type.NumOut(); j++ {
			returns = append(returns, method.Type.Out(i).Name())
		}

		log.Printf("func (w *%s） %s(%s) %s",
			typ.Elem().Name(),
			method.Name,
			strings.Join(argv, ","),
			strings.Join(returns, ","))
	}
}
